<?php
class Accion extends Model
{
	var $conunto;
	function Accion()
	{
		parent::Model();
		$conjunto=array();
	}
	
	function getEveryone()
	{
		$this->db->order_by("nombre", "asc");
		$query = $this->db->get('accion');
		return $query->result();
	}
	
	function getEveryoneProject()
	{
		$this->db->where('tipo', 'proyecto');
		$this->db->order_by("nombre", "asc");                   
		$query = $this->db->get('accion');
		return $query->result();
	}
	
	function getEveryoneTask()
	{
		$this->db->where('tipo', 'tarea');
		$this->db->order_by("nombre", "asc");
		$query = $this->db->get('accion');
		return $query->result();
	}
	
	function getOne($id)
	{
		$this->db->where('id_accion',$id);
		$query = $this->db->get('accion');
		if ($query->num_rows() == 1) 
		{
			return $query->row();
		} 
		else
		{
			return FALSE;		
		}			
	}
	
	function insert($data)
	{
		$result=$this->db->insert('accion', $data);
		if($result=="1")		
			echo "<script>alert('Tarea agregada Exitosamente.');</script>";
		 else
			echo "<script>alert('Error al Agregar la tarea.');</script>";

	}
	
	function update ($id,$data)
	{
		$this->db->where('id_accion', $id);
		$this->db->update('accion', $data);	
	}
	
	function delete ($id)
	{
		$this->db->where('id_accion', $id);
		$this->db->delete('');
	}
	
	
	function regNivel($data)
	{
		$this->db->insert('nivel', $data);
	}
	

	function lastRegister()
	{
		$this->db->order_by("id_accion","DESC");	
		$this->db->limit(1);
		$query = $this->db->get('accion');
		return $query->result();
	}
	

	function taskOfProject($id_project)
	{
		$this->db->where('id_proyecto',$id_project);
		$query = $this->db->get('accion');
		return $query->result();
	}
	
	function searchTask($values)
	{
		$values["tipo"] = 'tarea';
		$this->db->where($values);
		$this->db->order_by("nombre", "asc");
		$query = $this->db->get('accion');
		return $query->result();
	}
	
	function sacarNivel($elemento)
	{
		$this->db->select('nivel');
		$this->db->where('id_accion', $elemento);
		$query = $this->db->get('accion');
		return $query->result();
	}
	
	/*
	
			$this->db->select('accion.*');
		$this->db->from('accion');
		$this->db->join('categoria', 'categoria.id_categoria = accion.id_categoria');
		$this->db->where('categoria.id_categoria','3');
		$query = $this->db->get();
		*/

//recursivo2($_POST["id_proyecto"], $conexion);


	function recursivo2($n)
		{
		  $this->conjunto[]=$n;
			$result=$this->getOne($n);
			$this->mostrar_tareas($result);
			if($this->num_hijos($n)==0) //si numero de hijos es igual a 0  muestra tarea 
			{ 
			echo "es ..".$n."<br>";
			$resEmp=$this->getOne($n);
			foreach($resEmp as $elements=>$valor){
				
					//almacenar cada
					//$this->conjunto[]=$valor;
					// echo $valor."es ..<br>";
				
			}
			return 1;
			}

			else
			{
	//			echo "nodo entrante con hijos:".$n."<br>";
				$resq=$this->sub_tarea($n);
				  foreach($resq as $elem){
						$this->recursivo2($elem->id_accion);
					  }
			return "0";
			}

		}	
		
		
		function mostrar_tareas($result_q){
		 foreach($result_q as $result=>$valor){

		 if($result=='nombre'){
			 
		    if($valor > 1){
				if($valor == 2){
					//echo $valor."nivel 2<br>";
					}
				if($valor == 3){
					//echo $valor."nivel 3<br>";
					}
				if($valor == 4){
					//echo $valor."nivel 4<br>";
					}
					
				}
			else{ //echo $valor."<br>";
				}
		  }//fin if

		 }//fin foreach

		}

	  function num_hijos($elemento){
	   $query = $this->db->where('nivel.id_parent',$elemento);
	   $query = $this->db->join("nivel", "nivel.id_child = accion.id_accion");
	   $query = $this->db->get("accion");
	   return $query->num_rows(); 
	  }

	
	function sub_tarea($elemento){
	   $query = $this->db->select('accion.id_accion');
	   $query = $this->db->where('nivel.id_parent',$elemento);
	   $query = $this->db->join("nivel", "nivel.id_child = accion.id_accion");
	   $query = $this->db->get("accion");
	   return $query->result();

	}
	
	function getOrWhere($conjunt){
		$this->db->where_in('id_accion', $conjunt);
		$query = $this->db->get("accion");
		return $query->result();
	}
	

	function queryToArray($query)
	{
	$var=$query->result();
	$accionArr=array();
	$count=0;
		foreach($var as $row)
			{
			$accionArr[$count]=$row->id_accion;
			$count=$count+1;
			}
	return $accionArr;
	}
/* PRUEBAS */
	
	/*// SELECT EN BASE A UN ARREGLO CON ID_ACCION
	$values=array('54','55','56','57','58','59');
	foreach($values as $val)
	{
		$this->db->or_where('id_accion',$val);
	}
	
	*/

	
/*
//////////////   SEGUN EMPRESA
		$this->db->select('empresa_proyecto.id_accion');
		$this->db->from('empresa_proyecto');
		$this->db->where('empresa_proyecto.id_empresa','7');
		$query = $this->db->get();
		$ee=$this->queryToArray($query); //id_proyecto
		$this->db->select('accion.id_accion');
		$this->db->from('accion');
		$this->db->where('accion.id_proyecto',$ee[0]);


//////////////   SEGUN CATEGORIA
		$this->db->select('accion.id_accion');
		$this->db->from('accion');
		$this->db->where('accion.id_categoria','3');
		
//////////////   SEGUN PROYECTO
		$this->db->select('accion.id_accion');
		$this->db->from('accion');
		$this->db->where('accion.id_proyecto','51');
		
//////////////   SEGUN CAMPO
*/
//$this->db->_reset_run();


	function test2($data){
		$values=array();
		$temp=array();
		$fields=count($data);
		
		if($fields>=1){
			
			$count=1;
			foreach($data as $field=>$value){
				
				if($field=="date_from"){
				$this->db->where('creado_fecha_hora >=',$value.' 00:00:00'); 
				$query = $this->db->get('accion');
					if(count($values) >= 1)
					{	$temp=$values;		}
				$values=$this->queryToArray($query);
				}
				
				else if($field=="date_to"){
				$this->db->where('creado_fecha_hora <=',$value.' 00:00:00'); 
				$query = $this->db->get('accion');
					if(count($values) >= 1)
					{	$temp=$values;		}
				$values=$this->queryToArray($query);
				}
				
				else if($field=="id_empresa"){
				$this->db->select('empresa_proyecto.id_accion');
				$this->db->from('empresa_proyecto');
				$this->db->where('empresa_proyecto.id_empresa',$value);
				$query = $this->db->get();
				$ee=$this->queryToArray($query); //id_proyecto
				$this->db->select('accion.id_accion');
				$this->db->where('accion.id_proyecto',$ee[0]);
				$query = $this->db->get('accion');
					if(count($values) >= 1)
					{	$temp=$values;		}
				$values=$this->queryToArray($query);
				}
				
				else if($field=="id_categoria"){
				$this->db->select('accion.id_accion');
				$this->db->where('accion.id_categoria',$value);
				$query = $this->db->get('accion');
					if(count($values) >= 1)
					{	$temp=$values;		}
				$values=$this->queryToArray($query);
				}
				else if($field=="id_proyecto"){
				$this->db->select('accion.id_accion');
				$this->db->where('accion.id_proyecto',$value);
				$query = $this->db->get('accion');
					if(count($values) >= 1)
					{	$temp=$values;		}
				$values=$this->queryToArray($query);
				}
				else 
				{
				$this->db->like($field,$value);
				$query = $this->db->get('accion');
					if(count($values) >= 1)
					{	$temp=$values;		}
				$values=$this->queryToArray($query);
				}
				
			if(count($temp) >= 1)
			{
			$values = array_intersect($temp, $values);
			}
			$count=$count+1;
			}
			
		//del conjunto de id resultante

			foreach($values as $val)
			{
			$this->db->or_where('id_accion',$val);
			}
		}
		else{
			$this->db->select('*');
			}
	$this->db->where('tipo','tarea');		
	$query = $this->db->get('accion');
	return $query->result();
	}
	
/*  INSERTAR acutalizar*/

function insert_update($table,$fields,$id=NULL)
	{
		if($id===NULL)
		{
			$sql="INSERT INTO $table (id) VALUES(NULL);UPDATE $table SET $fields WHERE id = LAST_INSERT_ID()";
		}else{
			$sql="UPDATE $table SET $fields WHERE id = $id";
		}
		return $sql;
	}

}
?>
